<template>
  <div class="goods-list" >
      <!-- <router-link tag="div" :to="'/home/goodsinfo/' + item.id" class="goods-item" v-for="item in goodslist" :key="item.id">
        <img :src="item.img_url" alt="">
        <h1 class="title">{{ item.title }}</h1>
        <div class="info">
          <p class="price">
            <span class="new">￥{{ item.sell_price }}</span>
            <span class="old">￥{{ item.market_price }}</span>
          </p>
          <p class="sell">
            <span>热卖中</span>
            <span>剩{{ item.stock_quantity }}件</span>
          </p>
        </div>
      </router-link> -->

      <!-- 在页面中，有两种跳转方式： -->
      <!-- 方式1：使用 a 标签 的形式叫做 标签跳转 -->
      <!-- 方式2：使用 window.location.href 的形式，叫做 编程式导航 -->
      <div class="goods-item" v-for="item in goodslist" :key="item.id" @click="getDetail(item.id)">
        <img :src="item.img_url" alt="">
        <h1 class="title">{{ item.title }}</h1>
        <div class="info">
          <p class="price">
            <span class="new">￥{{ item.sell_price }}</span>
            <span class="old">￥{{ item.market_price }}</span>
          </p>
          <p class="sell">
            <span>热卖中</span>
            <span>剩{{ item.stock_quantity }}件</span>
          </p>
        </div>
      </div>

       <mt-button type="danger" size="large" style="margin-top: 10px;" @click="getMore">加载更多</mt-button>
  </div>    
</template>

<script>
export default {
  // data 是往自己组件内部，挂在一些私有数据
  data() {
    return {
      pageindex: 1, // 分页的页数
      goodslist: [] //存放商品列表的数组
    };
  },
  created() {
    this.getGoodsList();
  },
  methods: {
    getGoodsList() {
      // 获取商品列表
      this.$http.get("api/getgoods?pageindex=" + this.pageindex).then(result => {
        if (result.body.status === 0) {
          // this.goodslist = result.body.message;
          this.goodslist = this.goodslist.concat(result.body.message);
        }
      });
    },
    getMore(){ 
        // 加载更多
        this.pageindex++;
        this.getGoodsList();  
    },
    getDetail(id) {
        // 使用JS的形式进行路由导航

        // 注意：一定要区分 this.$route 和 this.$router 这两个对象，
        // 其中：this.$route 是路由 【参数对象】，所有路由中的参数，params,query 都属于它
        // 其中：this.$router 是一个路由 【导航对象】，用它 可以方便的 使用 JS 大妈，实现路由的 前进、后退、跳转到新的 URL 地址
        
        // console.log(this); // 输出当前vue的实例
        
        // 1. 最简单的
        // this.$router.push("/home/goodsinfo/" + id);   
        // 2. 传递对象
        // this.$router.push({ path: "/home/goodsinfo/" + id }); 
        // 3. 传递命名的路由
         this.$router.push({ name: "goodsinfo", params:{ id } }); // 这里实质上是 params:{ id:id }(这里的第一个id是指 router.js 中的 :id，name 也是 router.js 中定义的),可以简写为 params:{ id }
    }
  }
};
</script>

<style lang="scss" scoped>
.goods-list {
  // 设置父盒子为弹性盒模型
  display: flex; // 原本纵向布局，设置该属性改为流式布局，横向排布
  flex-wrap: wrap; // 默认flex 布局的盒子，内部的子元素不会换行，可以使用下面的属性使其换行
  justify-content: space-between;
  padding: 7px;

  .goods-item {
    width: 49%; // 设置一行放两个图片
    border: 1px solid #ccc;
    margin: 4px 0;
    box-shadow: 0 0 8px #ccc;
    padding: 2px; // 设置图片之间的间距
    display: flex;
    flex-direction: column; // 将图片垂直显示
    justify-content: space-between;
    min-height: 293px;

    img {
      width: 100%;
    }
    .title {
      font-size: 14px;
    }
    .info {
      background-color: #eee;
      p {
        margin: 0;
        padding: 5px;
      }
      .price {
        .new {
          color: red;
          font-size: 16px;
          font-weight: bold;
        }
        .old {
          text-decoration: line-through; // 旧的价格加一个横线
          font-size: 12px;
          margin-left: 10px;
        }
      }
      .sell {
        display: flex;
        justify-content: space-between;
        font-size: 13px;
      }
    }
  }
}
</style>